21591
16895
Próbuję załadować prognozę po odbiorze, ale pojawia się ten błąd
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/weight_boosting.py:29:
DeprecationWarning: numpy.core.umath_tests to wewnętrzny moduł NumPy
i nie należy ich importować. Zostanie usunięty w przyszłym NumPy
wydanie. z numpy.core.umath_tests import inner1d
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/base.py:311:
UserWarning: Próba odblokowania estymatora DecisionTreeClassifier z
wersja 0.20.2 podczas korzystania z wersji 0.19.2. Może to doprowadzić do pęknięcia
kod lub nieprawidłowe wyniki. Używaj na własne ryzyko. UserWarning)
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/base.py:311:
UserWarning: Próba odblokowania estymatora RandomForestClassifier z
wersja 0.20.2 podczas korzystania z wersji 0.19.2. Może to doprowadzić do pęknięcia
kod lub nieprawidłowe wyniki. Używaj na własne ryzyko. UserWarning)
Traceback (ostatnie połączenie ostatnio): Plik "rf_pred_model_tester.py",
wiersz 7, w
print ('Class:', int (rf.predict (xx))) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/forest.py" ,
linia 538, w przewidywaniu
proba = self.predict_proba (X) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/forest.py",
wiersz 581, w Predict_proba
n_jobs, _, _ = _partition_estimators (self.n_estimators, self.n_jobs) Plik
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/base.py",
linia 153, w _partition_estimators
n_jobs = min (_get_n_jobs (n_jobs), n_estimators) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/init.py",
wiersz 464 w _get_n_jobs
if n_jobs <0: TypeError: „<” nie jest obsługiwane między wystąpieniami „NoneType” i „int”
oto kod, który próbuję uruchomić
import marynaty
importuj numpy jako np
z open ('rf_model_1', 'rb') jako f:
rf = pickle.load (f)
xx = np.array ([67, 17832, 1, 1, 0, 33, 1941902452, 36, 33011.0, 19, 18, 0, 2, 1]). reshape (1, -1)
print ('Klasa:', int (rf.predict (xx)))
Spodziewam się takiego wyniku:
Klasa: [0]
jeśli uruchomię kod na jupyter, działa dobrze, ale pojawia się błąd, gdy próbuję uruchomić na terminalu. 
Twój błąd, mówiąc wprost:
UserWarning: Próba usunięcia estymatora RandomForestClassifier z wersji 0.20.2 podczas korzystania z wersji 0.19.2. Może to prowadzić do złamania kodu lub nieprawidłowych wyników. Używaj na własne ryzyko.
I rzeczywiście tak się stało; podczas wytrawiania atrybut n_jobs Twojego RandomForestClassifier był utrzymywany na poziomie Brak. Jest to domyślna wartość inicjalizacji, ale za kulisami jest ona zwykle ustawiona na 1. Więcej informacji na temat n_jobs można znaleźć tutaj: https://scikit-learn.org/stable/glossary.html#term-n-jobs
Dla ciebie ustawienie n_jobs rf na 1 załatwi sprawę:
import marynaty
importuj numpy jako np
z open ('rf_model_1', 'rb') jako f:
rf = pickle.load (f)
rf.n_jobs = 1
xx = np.array ([67, 17832, 1, 1, 0, 33, 1941902452, 36, 33011.0, 19, 18, 0, 2, 1]). reshape (1, -1)
print ('Klasa:', int (rf.predict (xx)))
|
Bardzo aktywne pytanie. Zdobądź 10 punktów reputacji, aby odpowiedzieć na to pytanie. Wymóg dotyczący reputacji pomaga chronić to pytanie przed spamem i brakiem odpowiedzi.
Nie szukasz odpowiedzi? Przeglądaj inne pytania otagowane jako python-3.x lub zadaj własne pytanie.